ARM: vITS: introduce translation table walks
authorAndre Przywara <andre.przywara@arm.com>
Thu, 26 Jan 2017 15:34:19 +0000 (15:34 +0000)
committerStefano Stabellini <sstabellini@kernel.org>
Wed, 14 Jun 2017 18:38:37 +0000 (11:38 -0700)
commit4b09480a557f926b266c48f199fa350b68e09ff4
treeb4c0dd84297315b0f26c85494d6b12b8fc2c71ea
parent4aa2e424061a6c8f6521b0483a51fb13c2b5af5b
ARM: vITS: introduce translation table walks

The ITS stores the target (v)CPU and the (virtual) LPI number in tables.
Introduce functions to walk those tables and translate an device ID -
event ID pair into a pair of virtual LPI and vCPU.
We map those tables on demand - which is cheap on arm64 - and copy the
respective entries before using them, to avoid the guest tampering with
them meanwhile.

To allow compiling without warnings, we declare two functions as
non-static for the moment, which two later patches will fix.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Acked-by: Julien Grall <julien.grall@arm.com>
Acked-by: Stefano Stabellini <sstabellini@kernel.org>
xen/arch/arm/vgic-v3-its.c